<?php

include_once 'Conexion.php';
include_once 'Usuario.php';
include_once 'Telefono.php';

class GestionUsuario {

    public function registro($nombre, $apellido, $ci, $direccion, $cod_area, $telefono, $correo, $tipo) {
        $query = "INSERT INTO USUARIO (CI,CORREO,NOMBRE,APELLIDO,ID_ROL,DIRECCION) VALUES 
                 (" . $ci . ",'" . $correo . "','" . $nombre . "','" . $apellido . "'," . $tipo . ",'" . $direccion . "')";
        $query = Conectar($query);
        $id = $this->buscarId($ci,$correo, $tipo);
        $query1 = "INSERT INTO telefono (TIPO, COD_AREA, NUMERO, ID_USUARIO) 
            VALUES ('Personal'," . $cod_area . "," . $telefono . "," . $id . ")";
        $query1 = Conectar($query1);
    }

    public function registroSistema($nombre, $apellido, $ci, $direccion, $cod_area, $telefono, $correo, $pass, $tipo) {
        try{
//        if ($tipo == 4)
            $query = "INSERT INTO USUARIO (CI,CORREO,NOMBRE,APELLIDO,ID_ROL,DIRECCION,PASSWORD) VALUES 
                 (" . $ci . ",'" . $correo . "','" . $nombre . "','" . $apellido . "'," . $tipo . ",'" 
                . $direccion . "','" . $pass . "')";                
        $query = Conectar($query);
//        if (!query)
//        {
//            
//        }
        $id = $this->buscarId($ci,$correo, $tipo);
        $query1 = "INSERT INTO telefono (TIPO, COD_AREA, NUMERO, ID_USUARIO) 
            VALUES ('Personal'," . $cod_area . "," . $telefono . "," . $id . ")";       
        $query1 = Conectar($query1);
        echo ("El usuario se ha registrado con exito.");
        }catch(Exception$e){
            echo ("Ocurrio un error");
        }
    }

    public function buscarId($ci,$correo, $tipo) {//falta registrar telf
        $query = "SELECT ID FROM USUARIO WHERE (CI=".$ci." AND ID_ROL=" . $tipo . ")";                
        $query = Conectar($query);        
        $num = mysql_num_rows($query);        
//        echo "1-".$num."\n";        
        $query2 = "SELECT ID FROM USUARIO WHERE (CORREO='" . $correo . "' AND ID_ROL=" . $tipo . ")";                
        $query2 = Conectar($query2);
        $num2 = mysql_num_rows($query2);
//        echo "2-".$num."\n";
        if ($num>0){
              $row = mysql_fetch_assoc($query);              
              return $row['ID'];             
        }else if($num2>0){
            $row2= mysql_fetch_assoc($query2);
            return $row2['ID'];
        }else{
             return null;
        }
    }

    public function ValidaUsuario($nombre, $pass) {
        $query = "SELECT u.ID ID, u.CI as ci, u.CORREO as correo, u.NOMBRE as nombre,
            u.APELLIDO as apellido, r.NOMBRE as rol FROM usuario U,rol r WHERE 
            U.CORREO='" . $nombre . "' and U.PASSWORD='" . $pass . "' and u.ID_ROL=r.ID";
        $query = Conectar($query);
        $num = mysql_num_rows($query);
        if ($num == 0) {
            return null;
        } else {
            while ($row = mysql_fetch_assoc($query)) {
                $usuario = new Usuario($row['ci'], $row['nombre'], $row['apellido'],
                                $row['correo'], null, null);
                $usuario->setId($row['ID']);
                $usuario->setTipo($row['rol']);
                return $usuario;
            }
        }
    }

    public function BuscaInvitado($Cedula) {
        $query = "SELECT U.CORREO as correo, U.NOMBRE as nombre, 
                  U.APELLIDO as apellido, U.DIRECCION as direccion,
                  T.COD_AREA as cod_area, T.NUMERO as numero FROM USUARIO U, 
                  TELEFONO T WHERE U.ID_ROL=3 AND T.ID_USUARIO=U.ID and U.CI=" . $Cedula;
        $query = Conectar($query);
        $num = mysql_num_rows($query);
        if ($num == 0) {
            return null;
        } else {
            while ($row = mysql_fetch_assoc($query)) {
                $telefono = new Telefono();
                $telefono->setTipo('Personal');
                $telefono->setNumero($row['numero']);
                $telefono->setCodArea($row['cod_area']);
                $usuario = new Usuario($Cedula, $row['nombre'], $row['apellido'],
                                $row['correo'], $row['direccion'], $telefono);
                $usuario->setTelefono($telefono);
                return $usuario;
            }
        }
    }

    public function getListarUsuarios() {
        $query = "SELECT ci,correo,nombre,apellido FROM usuario WHERE ID_ROL <> 3 and ID_ROL <> 5";
        $query = Conectar($query);
        $num = mysql_num_rows($query);
        if ($num == 0) {
            return null;
        } else {
            $lista_usuario = array();
            while ($row = mysql_fetch_assoc($query)) {
                $query2 = "SELECT T.COD_AREA,T.NUMERO FROM usuario u, telefono T WHERE u.ci = " . $row['ci'] . " and u.id=T.ID_USUARIO";
                $query2 = Conectar($query2);
                $num2 = mysql_num_rows($query2);
                if ($num2 == 0) {
                    $telefono = NULL;
                } else {
                    $row2 = mysql_fetch_assoc($query2);
                    $telefono = new Telefono();
                    $telefono->setTipo('Personal');
                    $telefono->setNumero($row2['NUMERO']);
                    $telefono->setCodArea($row2['COD_AREA']);
                }
                $usuario = new Usuario($row['ci'], $row['nombre'],
                                $row['apellido'], $row['correo'],
                                "", $telefono);
                $lista_usuario[] = $usuario;
            }
            return $lista_usuario;
        }
    }

    public function buscarRol($ci) {
        $query = "SELECT r.NOMBRE as rol FROM usuario U,rol r WHERE 
            U.CI='" . $ci . "' and u.ID_ROL=r.ID";
        $query = Conectar($query);
        $num = mysql_num_rows($query);
        $flag = true;
        if ($num == 0) {
            return null;
        } else {
            if ($num>1){
                while($row = mysql_fetch_assoc($query)){
                    if ($row['rol']!="Invitado")
                        return $row['rol'];
                    else
                        $flag=false;
                }
                if ($flag==false){
                    return "Invitado";
                }
            }else{
                $row = mysql_fetch_assoc($query);            
                return $row['rol'];
            }
            
        }
    }

    public function Eliminar($correo) {
        $query = "UPDATE usuario SET ID_ROL =  '5' WHERE ID_ROL<>3 and CORREO = '" . $correo . "'";
        $query = Conectar($query);
    }

    public function cambioPassword($correo, $password) {
        try {
            $query = "UPDATE  `sercomunitario`.`usuario` SET  `PASSWORD` =  '" . $password . "' WHERE  `usuario`.`CORREO` like '" . $correo . "' and ID_ROL<>3";
            $query = Conectar($query);
            echo "Clave cambiada con éxito";
        } catch (Exception $e) {
            echo "Ocurrio un error";
        }
    }

    public function buscarUsuarioPorId($id) {

        $query = "SELECT U.CI as ci, U.CORREO as correo, U.NOMBRE as nombre, 
                 U.APELLIDO as apellido, U.DIRECCION as direccion FROM USUARIO U
                 WHERE U.ID=" . $id;
        $query = Conectar($query);        
        $num = mysql_num_rows($query);
        if ($num == 0) {
            return null;
        } else {
            while ($row = mysql_fetch_assoc($query)) {
                $usuario = new Usuario($row['ci'], $row['nombre'], $row['apellido'],
                                $row['correo'], $row['direccion'], NULL);

                return $usuario;
            }
        }
    }

}

?>
